import { CharacterCursorParams as CharacterCursorList } from '@swda/configs/params'
Game_Event.prototype.mouseCursor = function(){
	// 若已经通过<Mouse Cursor:>指定了鼠标指针式样，则设为所指定的式样。
	if (this._mouseCursor){
		return this._mouseCursor;
	}
	// 若未通过注释指定式样：
	// 1. 如果行走图是空的，默认为“物品”
	// 2. 若文件名非空，则检查是否是代码指定的特殊行走图，若是，则设为指定的式样
	// 3. 若都不是，则默认为“对话”
	let characterName = this._characterName;
    if (characterName === "")
		return 'item';
	let specialCharacter = CharacterCursorList.filter(function(character){
		return character.Name === characterName;
	})[0];
	if (specialCharacter){
		return specialCharacter.Cursor;
	}
    return 'talk';
};

Game_Event.prototype.isMouseCursorChangeEnabled = function(){
	let characterName = this._characterName;

	// 如果事件页标签标记为<Mouse Cursor: null>（不区分大小写），则不响应鼠标变化
	if (this._mouseCursor){
		if(this._mouseCursor.toUpperCase() == "NULL")
			return false;
	}
		
	// 不论是什么，只要是看不见的事件，都不响应鼠标变化。（否则请设置成emptyEvent）
	if (characterName === "" || this._opacity === 0 || this._erased)
		return false;
		
	// emptyEvent时，条件为按决定建、且满足执行条件、且事件不为空时，鼠标指针会改变
	if (characterName === "emptyEvent"){
		if (this._trigger === 0 && this.meetsConditions(this.page()) && this.list().length > 1 )
			return true;
		else
			return false;
	}
	// 其它的情况：有特殊设置不能改变指针时，则不改变，否则默认改变。
	let specialCharacter = CharacterCursorList.filter(function(character){
		return character.Name === characterName;
	})[0];
	if (specialCharacter){
		if (specialCharacter.Cursor === "invalid"){
			return false;
		} else {
			return true
		}
	}
    return true;
};